package fiuba.algo3;

import java.util.Random;


public abstract class Edificio {
	private int vecesVisitado = 0;
	protected Ciudad proximaCiudad;
	protected String nombre;
	private boolean ladronEscondido = false;
	
	// METODOS PARA GENERAR PISTAS DEPENDIENDO DEL GRADO
	public Pista generarPista(Novato grado) {
		return this.generarPistaFacil();
	}
	
	public Pista generarPista(Detective grado) {		
		// Genera numero aleatorio entre 0 y 1 para ver que tipo de pista crear
		Random rnd = new Random();
		int x = (int)(rnd.nextDouble() * 2);
		Pista pista = null;
		
		switch(x){
		case 0:
			pista = this.generarPistaFacil();
			break;
		case 1:
			pista = this.generarPistaMedia();
			break;
		}
		return pista;
	}
	
	public Pista generarPista(Investigador grado) {
		// Genera numero aleatorio entre 0 y 1 para ver que tipo de pista crear
		Random rnd = new Random();
		int x = (int)(rnd.nextDouble() * 2);
		Pista pista = null;
		
		switch(x){
		case 0:
			pista = this.generarPistaMedia();
			break;
		case 1:
			pista = this.generarPistaDificil();
			break;
		}
		return pista;
	}
	
	public Pista generarPista(Sargento grado) {
		return this.generarPistaDificil();
	}
	
	public abstract Pista generarPistaFacil();	
	public abstract Pista generarPistaMedia();
	public abstract Pista generarPistaDificil();
	// FIN
	
	public void visitado(){
		if (this.vecesVisitado < 3){
			this.vecesVisitado = this.vecesVisitado + 1;
		}
	}
	
	// GETTERS
	public int getVecesVisitado() {
		return vecesVisitado;
	}
	
	public String getNombre() {
		return this.nombre;
	}
	// FIN GETTERS
	
	// METODOS SOBRE EL LADRON
	public void esconderAlLadron(boolean b) {
		this.ladronEscondido = true;		
	}
	
	public boolean estaLadronEscondido() {
		return ladronEscondido;
	}
	// FIN


}
